#ifndef _QUEUE_H_
#define _QUEUE_H_

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <semaphore.h>

struct msg{
    struct sockaddr_in addr;
    char buf[1024];
};
struct queue{
    struct msg data;
    struct queue *next;
};

struct exam1{
    sem_t semr;
    sem_t semw;
    pthread_mutex_t mutex;
    struct queue *que;
};

//创建一个队列
struct queue *create_queue();

//入队
void push(struct queue *que,struct msg data);

//找到队首元素
struct msg front(struct queue *que);

//删除队首元素
void pop(struct queue *que);

//判断队列是否为空
int isemptyque(struct queue *que);

//求队列的大小
int sizeofque(struct queue *que);

// //释放队列
// void freeque(struct queue *que);


#endif